听说你的图形配色辣眼睛?这篇文章可以简单入门
ggplot2绘图系统是目前主流绘图系统,有众多的配色R包支持,绘制出来的图形优雅漂亮,在前面我们也介绍过很多ggplot2图形的配色用法。
我们今天来介绍下可以用于传统绘图系统的一些配色R包。
1. 绘制个简单图形
直接画个简单图形。
barplot(1:10)
如上图所示,图形色彩平平无奇。
2. 调整函数参数
首先调整上面的直方图的颜色,可以调整函数参数来调整图形颜色。
barplot()中调整颜色的参数为col,col参数支持数字、颜色值等参数。
layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE))
barplot(1:10, col = "red")
barplot(1:10, col = c("red","blue"))
barplot(1:10, col = c(1:5))
barplot(1:10, col = c(1:10))
上面的图形色彩不能说好看吧,有点辣眼睛。
下面来进阶下图形配色。
3. 默认调色板
base R中也有多种用于创建连续型颜色向量的函数,包括rainbow()
、heat.colors()
、terrain.colors()
、topo.colors()
以及cm.colors()
。
layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE))
barplot(1:10, col=rainbow(10))
barplot(1:10, col=heat.colors(10))
barplot(1:10, col=terrain.colors(10))
barplot(1:10, col=topo.colors(10))
4. 灰白渐变色
多阶灰度色可使用基础安装所自带的gray() 函数生成。这时要通过一个元素值为0 和1 之间的向量来指定各颜色的灰度。gray(0:10/10) 将生成10 阶灰度色。
barplot(1:10, col = gray(0:10/10))
barplot(1:10, col = gray(0:10/20))
barplot(1:10, col = gray(10:0/10))
barplot(1:10, col = gray(10:0/20))
除了使用默认的配色外,还有很多的配色R包也支持传统绘图系统,下面来学习几个常用的R包。
5. RColorBrewer 包
使用函数brewer.pal(n, name) 来创建一个颜色值的向量。
library("RColorBrewer")
barplot(1:10, col = brewer.pal(n = 10, name = "BrBG"))
barplot(1:10, col = brewer.pal(n = 10, name = "RdGy"))
barplot(1:10, col = brewer.pal(n = 10, name = "PuOr"))
barplot(1:10, col = brewer.pal(n = 10, name = "PiYG"))
6. viridis 包
viridis 包提供了matplotlib 中默认的色带。使用此包中的色带来制作漂亮的图表,可以更好地展示数据,更容易被具有色盲的人阅读,并支持灰度打印。
library("viridis")
barplot(1:10, col = viridis(10))
barplot(1:10, col = magma(10))
barplot(1:10, col = inferno(10))
barplot(1:10, col = plasma(10))
7. ggsci 包
ggsci 包是ggplot2 的扩展包,主要对ggplot 图形提供设定好的配色方案,但同时该包中的配色方案也能够被base 或lattice 等其它绘图系统调用。
library(ggsci)
barplot(1:10, col = pal_aaas()(10))
barplot(1:10, col = pal_d3()(10))
barplot(1:10, col = pal_npg()(10))
barplot(1:10, col = pal_igv()(10))
8. wesanderson 包
这个包中包含16 种色条颜色,他们都是从Wes Anderson 的电影里面选取的 颜色。
library(wesanderson)
barplot(1:10, col = wes_palette("Zissou1", 10, type = "continuous"))
barplot(1:10, col = wes_palette("Rushmore1", 10, type = "continuous"))
barplot(1:10, col = wes_palette("Royal1", 10, type = "continuous"))
barplot(1:10, col = wes_palette("IsleofDogs2", 10, type = "continuous"))
好了,今天的内容就学习到这里,如果没有特别好的传统图形配色包,可以考虑下上面的配色R包。
参考资料来自以上R包的帮助文件。
如果需要进群,请在菜单栏处添加作者微信,添加入群。
点个在看,SCI马上发表。